rank-2 type
rank-1 type
な関数をfirst class objectとして扱う関数
Haskellでは
RankNTypes
拡張が必要
PureScriptならdefaultで使用できる
例
code:hs
{-# LANGUAGE RankNTypes
#-}
foo' :: (forall a.
a
-> Int) -> Int
runST :: (forall s. ST s a) -> a
f4 :: Int -> (forall a. a -> a)
引数の関数が
forall
で囲われている